这段代码是Haru Free PDF Library中关于3D注释（3D Measure）的头文件 `hpdf_annotation.h`（注：文件守卫宏和文件名不匹配，实际代码中可能是一个错误）。它定义了创建3D注释的函数原型。以下是对代码的逐项解释：

1. **版权声明**：注释块提供了Haru PDF库的版权信息。

2. **宏定义**：`#ifndef _HPDF_3DMEASURE_H` 和 `#define _HPDF_3DMEASURE_H` 用于防止头文件被多次包含。

3. **包含其他头文件**：`#include "hpdf_objects.h"` 包含了处理PDF对象所需的头文件。

4. **C++兼容性**：条件编译指令，确保当使用C++编译器时，这些函数以C的方式进行链接。

5. **3D注释函数原型**：
   - `HPDF_3DC3DMeasure_New`：创建一个新的3D注释对象。这个函数接受一个内存管理器 `mmgr`，交叉引用表 `xref`，以及两个3D点 `firstanchorpoint` 和 `textanchorpoint` 作为参数。
   - `HPDF_PD33DMeasure_New`：创建一个新的PD33DMeasure类型的3D注释对象。这个函数接受更多的参数，包括注释平面法线、两个锚点、引导线方向、测量值点、文本Y方向、测量值、单位字符串等。

6. **结束C++兼容性条件编译**：`#ifdef __cplusplus` 和 `#endif /* __cplusplus */` 结束C++兼容性代码块。

7. **结束宏定义**：`#endif /* _HPDF_3DMEASURE_H */` 结束头文件的宏定义。

这个头文件提供了创建3D注释的功能，允许开发者在PDF文档中添加3D测量注释。注释可以包括文本和测量值，以及它们在3D空间中的位置和方向。这些注释可以用于技术文档或任何需要展示3D测量信息的PDF文件。

**注意**：文件守卫宏 `_HPDF_3DMEASURE_H` 和实际的文件名 `hpdf_annotation.h` 不匹配，这可能是一个错误，或者实际文件名应该与守卫宏一致。/*
 * << Haru Free PDF Library >> -- hpdf_annotation.h
 *
 * URL: http://libharu.org
 *
 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
 * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 * It is provided "as is" without express or implied warranty.
 *
 */

#ifndef _HPDF_3DMEASURE_H
#define _HPDF_3DMEASURE_H

#include "hpdf_objects.h"

#ifdef __cplusplus
extern "C" {
#endif

/*----------------------------------------------------------------------------*/
/*------ HPDF_3DMeasure -----------------------------------------------------*/


HPDF_3DMeasure
HPDF_3DC3DMeasure_New(HPDF_MMgr mmgr,
		              HPDF_Xref xref,
		              HPDF_Point3D    firstanchorpoint,
		              HPDF_Point3D    textanchorpoint
		);
             
HPDF_3DMeasure
HPDF_PD33DMeasure_New(HPDF_MMgr mmgr,
					  HPDF_Xref xref,
					  HPDF_Point3D    annotationPlaneNormal,
					  HPDF_Point3D    firstAnchorPoint,
					  HPDF_Point3D    secondAnchorPoint,
					  HPDF_Point3D    leaderLinesDirection,
					  HPDF_Point3D    measurementValuePoint,
					  HPDF_Point3D    textYDirection,
					  HPDF_REAL       value,
					  const char*     unitsString
					  );


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _HPDF_3DMEASURE_H */

